using System;
using System.Collections.Generic;
using System.Text;
using System.Collections.Specialized;

namespace Impact.Views
{
    /// <summary>
    /// this interface represents the standard functionality a page implements, and can be used
    /// by controllers.
    /// </summary>
    public interface IPageView
    {


        /// <summary>
        /// Gets the parameters passed on the querystring of the current request
        /// </summary>
        NameValueCollection Parameters { get; }

        /// <summary>
        /// end the response and forward to the parameter url
        /// </summary>
        void Redirect(string targetUrl);

        /// <summary>
        /// return to the referring page
        /// </summary>
        void Return();

        ///// <summary>
        ///// reloads the current page, with the same page.  used during a postback to
        ///// show updated data after making changes to the data.
        ///// </summary>
        //void Reload();

        /// <summary>
        /// displays an error message on the view
        /// </summary>
        void ShowErrorMessage(string message);

        /// <summary>
        /// the client IP address of the user
        /// </summary>
        string UserHostAddress
        {
            get;
        }

    }
}
